In receiving the contents stored in a contents server via a network, a contents receiving apparatus typically makes a request to the contents server in accordance with a communication protocol such as HTTP to receive the contents data.
However, when a request is simply issued by specifying the contents only, all the contents are transmitted to the contents receiving apparatus upon one request. Accordingly, even if there is a restriction on the reception buffer for the contents receiving apparatus to deal with the communication protocol, only a part of the contents can not be received. Also, even if the contents receiving apparatus already holds a certain part of the contents, the contents from the beginning to the last must be required.
To improve this, some communication protocols support a block transfer to allow a certain part of the contents to be acquired. For example, in an HTTP, the block transfer is implemented by including a Range header in an HTTP request message (e.g., refer to Japanese Patent Laid-Open No. 2001-101091, or R. Fielding et al., “Hypertext Transfer Protocol-HTTP/1.1”, RFC2616, the entire disclosure of which are incorporated herein by reference in its entirety).
When the contents are AV contents, the AV contents can be transmitted or received in the same way as above. Especially in the case of the AV contents, the contents receiving apparatus transmits a request while checking availability of the reception buffer for storage before forwarding the AV contents to an internal decoder. In this case, the contents data is transmitted or received, employing the block transfer.
However, in transferring the contents from the contents server, the additional information may be appended to the transmission data according to a certain rule, based on an attribute of each portion of the contents, the conventional transfer method employing the block transfer has a problem that the contents receiving apparatus can not correctly request the data range to be received to the contents server. This problem with the conventional transfer method employing the block transfer will be described below.
The additional information appended to the transmission data by the contents server includes the information regarding the degree of importance for the portion of the contents, and the information regarding encryption. The additional information for the degree of importance is employed by a repeater and so on between the contents server and the contents receiving apparatus, referring to it, to control the transmission so that the contents data having the higher degree of importance may be transmitted earlier when there is a high network load, for example. The information regarding encryption is the information regarding the key, for example.
The additional information is appended every time the corresponding attribute is changed within the contents. For example, the additional information regarding the degree of importance, the additional information is appended again every time the degree of importance is changed within the contents. For each transfer unit (packet or message) of the communication protocol, the additional information is necessarily appended after the header of the communication protocol. This is made to deal with the situation where the previous packet or message is lost on the network.
FIG. 2(a) shows an example of the HTTP message in the case where the contents with the additional information appended is further transmitted in accordance with the HTTP. The contents are divided into three blocks according to the degree of importance in FIG. 2(a), but transmitted by two HTTP messages as shown in FIGS. 2(b) and 2(c).
In the first HTTP message as shown in FIG. 2(b), the HTTP header is followed by the additional information for the contents block 1, the contents block 1, the additional information for contents block 2, and a part (former half) of the contents block 2. In the second HTTP message as shown in FIG. 2(c), the HTTP header is firstly followed by the additional information for the contents block 2. This is due to a rule that the additional information is necessarily appended after the HTTP header. Further, it is followed by a part (latter half) of the contents block 2, the additional information for the contents block 3, and the contents block 3.
FIGS. 3(a) to 3(d) are examples where the same contents of FIG. 2 are transmitted by three HTTP messages. Three contents blocks are transmitted by three HTTP messages as shown in FIGS. 3(b) to 3(d).
The data transmitted as a message body (data part) of each HTTP message includes the additional information and the contents data. Since there is no distinction between the additional information and the contents data on the HTTP protocol, they are treated as data impartially, in which the data length (value of Content-Length header) included in the HTTP header is written as the sum of the length of the additional information and the length of the contents data.
When the contents receiving apparatus acquires a part of the contents from the contents server, employing the Range header of the HTTP, for example, a problem occurs if the additional information exists. The data transmitted or received by the HTTP is the contents data with the additional information. Accordingly, when the contents receiving apparatus acquires a part of the contents, it is required to specify the acquired range, supposing all the data consisting of the contents data and the additional information.
However, the total number of additional information to be transmitted or received may change, depending on a way of dividing the contents, as seen from FIGS. 2 and 3. The contents receiving apparatus transmits a request for contents according to its own division method. However, the contents server, which does not know which division method is supposed for the contents receiving apparatus, can not specify the range of contents to be actually received by the contents receiving apparatus.
Also, when the contents are AV contents and the contents receiving apparatus may reproduce the AV contents including the image and the audio, which are stored in the contents server, via the network, particularly the information concerning the copyright management may be appended as the additional information. That is, information defining that a certain part of the AV contents is permitted to be copied, but the other part must not be copied. In this case, the part that must not be copied is required to be encrypted for transmission on the network. Also, when the key is periodically updated for encryption, the information concerning the decoding may be appended as the additional information.
When the contents are AV contents, the contents receiving apparatus issues a request for acquiring a part of the AV contents, while checking the availability of the reception buffer. The way of dividing the AV contents is decided at the time of issuing the request, depending on the availability of the reception buffer. In this case, when the additional information such as the information concerning the copyright management is appended in the middle of the contents, the total data length of the AV contents with the additional information appended may change, as seen from the HTTP, depending on the way of how the contents receiving apparatus divides the AV contents. Accordingly, the contents server can not specify the range of AV contents to be actually reproduced by the contents receiving apparatus.
The above-mentioned problem may occur with a DTCP-IP (e.g., refer to DTCP Volume 1 Supplement E Mapping DTCP to IP (Informational Version) Revision 1.0 Nov. 24, 2003), for example. In the DTCP-IP, a PCP header including the copyright information and the key as the additional information is defined. The PCP header is appended every time the copyright attribute of the contents to be transmitted changes. Also, the PCP header is appended to the top (directly after the HTTP header) of each HTTP response message carrying the contents.